
package com.hlkj.pay.infrastructure.model.payment;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 商户代付详情
 * 
 * @TableName t_merchant_payment_detail
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_merchant_payment_detail")
public class MerchantPaymentDetailDO extends BaseDO {

    /**
     * sn
     */
    @Schema(description = "sn")
    private String sn;

    /**
     * 代付id
     */
    @Schema(description = "代付id")
    private String paymentId;

    /**
     * 代付详情id
     */
    @Schema(description = "代付详情id")
    private String detailPaymentId;

    /**
     * 状态 2 执行中 3 执行完成 4 执行失败
     */
    @Schema(description = "状态 2 执行中 3 执行完成 4 执行失败")
    private Integer status;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 代付金额
     */
    @Schema(description = "代付金额")
    private BigDecimal payAmount;

    /**
     * 账号名称
     */
    @Schema(description = "账号名称")
    private String name;

    /**
     * 账号code
     */
    @Schema(description = "账号code")
    private String cardNo;

    @Schema(description = "账号类型 0：对公账户 1：对私法人账户 2：对私非法人账户")
    private Integer accountType;
    /**
     * 银行编码
     */
    @Schema(description = "银行编码")
    private String bankCode;

    /**
     * 银行名称
     */
    @Schema(description = "银行名称")
    private String bankName;

    /**
     * 联行号
     */
    @Schema(description = "联行号")
    private String branchCode;

    /**
     * 联行号
     */
    @Schema(description = "开户行名称")
    private String branchName;

    /**
     * 银行卡绑定手机号
     */
    @Schema(description = "银行卡绑定手机号")
    private String cardPhone;
    /**
     * 身份证号码
     */
    @Schema(description = "身份证号码")
    private String certNo;

    /**
     * 省份名称
     */
    @Schema(description = "省份名称")
    private String provinceName;

    /**
     * 城市名称
     */
    @Schema(description = "城市名称")
    private String cityName;

    /**
     * 0:收款方付款;1:付款方付费
     */
    @Schema(description = "付款类型 0:收款方付款;1:付款方付费")
    private Integer feePayer;

    /**
     * 成功时间
     */
    @Schema(description = "成功时间")
    private Long successTime;
    /**
     * 成功时间
     */
    @Schema(description = "退票时间")
    private Long refundSuccessTime;

    /**
     * 成功时间
     */
    @Schema(description = "第三方订单号")
    private String thirdPaymentId;

    /**
     * 成功时间
     */
    @Schema(description = "第三方手续费")
    private BigDecimal thirdDealAmount;

    /**
     * 凭证地址
     */
    @Schema(description = "凭证地址")
    private String proofPath;
    /**
     * 第三方凭证id
     */
    @Schema(description = "第三方凭证id")
    private String proofId;
    /**
     * 商户订单号
     */
    @Schema(description = "商户订单号")
    private String mchOrderNo;


    /**
     * 机构订单号
     */
    @Schema(description = "机构订单号")
    private String insOrderNo;


    /**
     * 渠道附加订单号
     */
    @Schema(description = "渠道附加订单号")
    private String channelOrderId;

    @Schema(description = "手续费金额")
    private BigDecimal feeAmount;

}
